Googel 現在把所有的安卓組件都做成套件的形式,讓你想裝什麼就裝什麼,統稱 Android Jetpack,如果是以前的話是不用特別教套件怎麼安裝,可是到 Gradle 7.0 後,有些套件的存放位置和之前比起來有些不同,所以為了之後方便教學,先用這篇把 safeargs.kotlin 和 kotlinx.serialization 的套件裝好,還有一些簡單的設定。
至於什麼是 safeargs.kotlin 和 kotlinx.serialization
除了原本的 android.application、android.library、jetbrains.kotlin.android 外,還要安裝 safeargs.kotlin 和 kotlinx.serialization,可以把下面的程式碼全選複製貼上到 build.gradle(Project: 你的應用程式名稱)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.1.3' apply false
    id 'com.android.library' version '7.1.3' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
    
    id 'androidx.navigation.safeargs.kotlin' version '2.4.2' apply false
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.6.21'
}
task clean(type: Delete) {
    delete rootProject.buildDir
}
這個就分成很多區塊,分別是
還要新增三個套件,分別是
plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    
    id 'androidx.navigation.safeargs.kotlin'
    id 'org.jetbrains.kotlin.plugin.serialization'    
    id 'org.jetbrains.kotlin.kapt'
}
因為我習慣語意化版本號,所以「versionName "1.0"」改成「versionName "0.0.1"」
還有之後要用資料綁定功能,所以額外新增「dataBinding true」的設定
android {
    defaultConfig {
        versionName "0.0.1"
    }
    buildFeatures {
        dataBinding true
    }
}
從網路上找到的套件就會放在這邊,例如我們要安裝資料庫套件「Room」,就會像下面這樣
dependencies {
    kapt "androidx.room:room-compiler:2.4.3"
    implementation "androidx.room:room-runtime:2.4.3"
    implementation "androidx.room:room-ktx:2.4.3"
    testImplementation "androidx.room:room-testing:2.4.3"
}
複製 buildscript 的內容貼到 dependencyResolutionManagement 裡面就好
dependencyResolutionManagement {
    buildscript {
        dependencies {
            classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0-alpha01"
            classpath "org.jetbrains.kotlin:kotlin-serialization:1.6.21"
        }
    }
}
這樣基本的設定就完成囉